package com.xyh.springboot.exception;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.handler.SimpleMappingExceptionResolver;

import java.util.Properties;

/**
 * @Author:kyle
 * @Date:2020/12/28 - 16:48
 * @Project:springboot
 * @Package:com.xyh.springboot.exception
 * @Version:1.0
 * 第三种处理异常方式--全局异常类的统一处理
 * 很明显第二种处理异常方式，如果要处理很多种异常，就需要建很多方法，
 * 这样实在太费时费力，可以使用`SimpleMappingExceptionResovler`来进行统一处理
 */
@Configuration
public class GlobalException {

    @Bean
    public SimpleMappingExceptionResolver getSimpleMappingExceptionResolver(){
        SimpleMappingExceptionResolver resolver = new SimpleMappingExceptionResolver();
        Properties properties = new Properties();
        properties.setProperty("java.lang.ArithmeticException","error");
        properties.setProperty("java.lang.NullPointerException","error");

        resolver.setExceptionMappings(properties);
        //设置默认异常跳转界面
        resolver.setDefaultErrorView("error");
        //设置界面异常对象名称
        resolver.setExceptionAttribute("error");

        return resolver;
    }
}
